Creating and maintaining consistent documents with elucidative development
نویسنده
چکیده
Software systems are usually not defined in one big, all-encompassing model, but they consist of a multitude of different views from multiple technological spaces, such as requirements, class diagrams, or source code. These views contain redundancy, i.e., they share some of their information. If redundant information in different views contradicts with each other, the views become inconsistent. Inconsistency is a source of errors, and much effort is spent on research and tool development to avoid it. Documents are also views on a software system. They are usually written by human authors. In practise, documents and other views often change at different paces. Document updates are frequently omitted because they are expensive and do not pay off immediately. Consequently, documents are often outdated. Outdated documents communicate wrong information about the software. The severity of outdated information can range from a minor inconvenience for the reader to complete uselessness. Sometimes documents are generated. If generated documents are outdated, they can easily be regenerated. However, in many cases it is not possible to generate the desired document content. In this thesis, we introduce Elucidative Development (ED), an approach to create documents from other views by partial generation. Partial generation means, that some document content is generated, and the remaining document content is added manually, afterwards. Unlike naive generation approaches, ED retains manually written content when the generated content is regenerated. A guidance system informs the author about changes in the generated content and helps him update the manually written content. In an evaluation we present our findings regarding the applicability and versatility of ED. First, we analyse two model specifications, one of them being the Unified Modeling Language (UML) specification, for inconsistencies and show that the use of ED would have prevented these inconsistencies. We also show how ED helps with the update of the specifications. Then, we present several examples where we successfully wrote documents using ED.
منابع مشابه
An Elucidative Programming Environment for Scheme (Incomplete Draft)
In this paper we describe a programming environment for Scheme that supports elucidative programming. Scheme is a programming language in the Lisp family. Elucidative programming is a variant of literate programming. Literate programming represents the idea of structuring the program as fragments that are contained in an essay that documents the program understanding. Elucidative programming is...
متن کاملElucidative Programming
In this paper we introduce Elucidative Programming as a variant of Literate Programming. Literate Programming represents the idea of organizing a source program in an essay that documents the program understanding. An elucidative program connects textual documentation with the abstractions and the details in the source program. The documentation and the source program are defined in separate fi...
متن کاملElucidative Programming in open integrated development environments for Java
In this paper we present an integration of tool support for internal documentation in the modern IDE TogetherJ. The specific kind of internal documentation stems from the Elucidative Programming tradition where documentation and source code are separate entities tied together using hyperlinks. The tool supports the programmer in creating and managing internal documentation of Java source code. ...
متن کاملMaintaining Program Understanding -- Issues, Tools, and Future Directions
The understanding of a program is a key aspect of software development. The understanding is a prerequisite for the initial development efforts. This paper is concerned with the challenge of maintaining the program understanding with the purpose of supporting later phases in the program life time. One approach to maintaining program understanding is to document decision and rationales behind a ...
متن کاملExtended Version of Elucidative Development for Model-Based Documentation and Language Specification
Documentation is an essential activity in software development, for source code as well as modelling artefacts. Typically, documentation is created and maintained manually which leads to inconsistencies as documented artefacts like source code or models evolve during development. Existing approaches like literate/elucidative programming or literate modelling address these problems by deriving d...
متن کامل